home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / misc / dspice0s / elprnt.c < prev    next >
C/C++ Source or Header  |  1992-11-21  |  46KB  |  1,369 lines

  1. /* elprnt.f -- translated by f2c (version of 3 February 1990  3:36:42).
  2.    You must link the resulting object file with the libraries:
  3.     -lF77 -lI77 -lm -lc   (in that order)
  4. */
  5.  
  6. #include "f2c.h"
  7.  
  8. /* Common Block Declarations */
  9.  
  10. struct {
  11.     integer ielmnt, isbckt, nsbckt, iunsat, nunsat, itemps, numtem, isens, 
  12.         nsens, ifour, nfour, ifield, icode, idelim, icolum, insize, 
  13.         junode, lsbkpt, numbkp, iorder, jmnode, iur, iuc, ilc, ilr, 
  14.         numoff, isr, nmoffc, iseq, iseq1, neqn, nodevs, ndiag, iswap, 
  15.         iequa, macins, lvnim1, lx0, lvn, lynl, lyu, lyl, lx1, lx2, lx3, 
  16.         lx4, lx5, lx6, lx7, ld0, ld1, ltd, imynl, imvn, lcvn, nsnod, 
  17.         nsmat, nsval, icnod, icmat, icval, loutpt, lpol, lzer, irswpf, 
  18.         irswpr, icswpf, icswpr, irpt, jcpt, irowno, jcolno, nttbr, nttar, 
  19.         lvntmp;
  20. } tabinf_;
  21.  
  22. #define tabinf_1 tabinf_
  23.  
  24. struct {
  25.     doublereal atime, aprog[3], adate, atitle[10], defl, defw, defad, defas, 
  26.         rstats[50];
  27.     integer iwidth, lwidth, nopage;
  28. } miscel_;
  29.  
  30. #define miscel_1 miscel_
  31.  
  32. struct {
  33.     integer locate[50], jelcnt[50], nunods, ncnods, numnod, nstop, nut, nlt, 
  34.         nxtrm, ndist, ntlin, ibr, numvs, numalt, numcyc;
  35. } cirdat_;
  36.  
  37. #define cirdat_1 cirdat_
  38.  
  39. struct {
  40.     integer iprnta, iprntl, iprntm, iprntn, iprnto, limtim, limpts, lvlcod, 
  41.         lvltim, itl1, itl2, itl3, itl4, itl5, itl6, igoof, nogo, keof;
  42. } flags_;
  43.  
  44. #define flags_1 flags_
  45.  
  46. struct {
  47.     doublereal tstep, tstop, tstart, delmax, tdmax, forfre;
  48.     integer jtrflg;
  49. } tran_;
  50.  
  51. #define tran_1 tran_
  52.  
  53. struct {
  54.     doublereal value[200000];
  55. } blank_;
  56.  
  57. #define blank_1 blank_
  58.  
  59. struct {
  60.     doublereal omega, time, delta, delold[7], ag[7], vt, xni, egfet, xmu, 
  61.         sfactr;
  62.     integer mode, modedc, icalc, initf, method, iord, maxord, noncon, iterno, 
  63.         itemno, nosolv, modac, ipiv, ivmflg, ipostp, iscrch, iofile;
  64. } status_;
  65.  
  66. #define status_1 status_
  67.  
  68. /* Table of constant values */
  69.  
  70. static integer c__0 = 0;
  71. static integer c__1 = 1;
  72.  
  73. /*<       subroutine elprnt >*/
  74. /* Subroutine */ int elprnt_()
  75. {
  76.     /* Initialized data */
  77.  
  78.     static struct {
  79.     char e_1[32];
  80.     doublereal e_2;
  81.     } equiv_72 = { {'c', 'i', 'r', 'c', 'u', 'i', 't', ' ', 'e', 'l', 'e',
  82.          'm', 'e', 'n', 't', ' ', 's', 'u', 'm', 'm', 'a', 'r', 'y', 
  83.         ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
  84.  
  85. #define eltitl ((doublereal *)&equiv_72)
  86.  
  87.     static struct {
  88.     char e_1[48];
  89.     doublereal e_2;
  90.     } equiv_73 = { {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'p', 'u', 'l',
  91.          's', 'e', ' ', ' ', ' ', 's', 'i', 'n', ' ', ' ', ' ', ' ', 
  92.         ' ', 'e', 'x', 'p', ' ', ' ', ' ', ' ', ' ', 'p', 'w', 'l', 
  93.         ' ', ' ', ' ', ' ', ' ', 's', 'f', 'f', 'm', ' ', ' ', ' ', 
  94.         ' '}, 0. };
  95.  
  96. #define astyp ((doublereal *)&equiv_73)
  97.  
  98.     static struct {
  99.     char e_1[8];
  100.     doublereal e_2;
  101.     } equiv_74 = { {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
  102.  
  103. #define ablnk (*(doublereal *)&equiv_74)
  104.  
  105.     static struct {
  106.     char e_1[8];
  107.     doublereal e_2;
  108.     } equiv_75 = { {'o', 'f', 'f', ' ', ' ', ' ', ' ', ' '}, 0. };
  109.  
  110. #define aoff (*(doublereal *)&equiv_75)
  111.  
  112.  
  113.     /* Format strings */
  114.     static char fmt_21[] = "(//\0020**** resistors\002/\0020     name       \
  115.  nodes     value       tc1        tc2\002//)";
  116.     static char fmt_31[] = "(6x,a8,2i5,1p3d11.2)";
  117.     static char fmt_51[] = "(//\0020**** capacitors and inductors\002/\0020 \
  118.     name        nodes    in cond     value\002//)";
  119.     static char fmt_63[] = "(6x,a8,2i5,1pd11.2,\002   variable\002)";
  120.     static char fmt_81[] = "(//\0020**** mutual inductors\002/\0020     name\
  121.         coupled inductors   value\002//)";
  122.     static char fmt_91[] = "(6x,a8,4x,a8,2x,a8,1pd10.2)";
  123.     static char fmt_101[] = "(//\0020**** voltage-controlled current source\
  124. s\002/\0020     name        +    -   dimension   function\002)";
  125.     static char fmt_111[] = "(6x,a8,2i5,i8,9x,\002poly\002)";
  126.     static char fmt_121[] = "(//\0020**** voltage-controlled voltage source\
  127. s\002/\0020     name        +    -   dimension   function\002)";
  128.     static char fmt_141[] = "(//\0020**** current-controlled current source\
  129. s\002/\0020     name        +    -   dimension   function\002)";
  130.     static char fmt_161[] = "(//\0020**** current-controlled voltage source\
  131. s\002/\0020     name        +    -   dimension   function\002)";
  132.     static char fmt_171[] = "(//\0020**** independent sources\002/\0020     \
  133. name        nodes   dc value   ac value   ac phase   transient\002//)";
  134.     static char fmt_181[] = "(6x,a8,2i5,1p3d11.2,2x,a8)";
  135.     static char fmt_191[] = "(\0020\002,42x,\002initial value\002,1pd11.2,/,\
  136. 43x,\002pulsed value.\002,d11.2,/,43x,\002delay time...\002,d11.2,/,43x,\002\
  137. risetime.....\002,d11.2,/,43x,\002falltime.....\002,d11.2,/,43x,\002width...\
  138. .....\002,d11.2,/,43x,\002period.......\002,d11.2,/)";
  139.     static char fmt_201[] = "(\0020\002,42x,\002offset.......\002,1pd11.2,/,\
  140. 43x,\002amplitude....\002,d11.2,/,43x,\002frequency....\002,d11.2,/,43x,\002\
  141. delay........\002,d11.2,/,43x,\002theta........\002,d11.2,/)";
  142.     static char fmt_211[] = "(\0020\002,42x,\002initial value\002,1pd11.2,/,\
  143. 43x,\002pulsed value.\002,d11.2,/,43x,\002rise delay...\002,d11.2,/,43x,\002\
  144. rise tau.....\002,d11.2,/,43x,\002fall delay...\002,d11.2,/,43x,\002fall tau\
  145. .....\002,d11.2,/)";
  146.     static char fmt_221[] = "(\0020\002,49x,\002time       value\002//,(46x,\
  147. 1p2d11.2))";
  148.     static char fmt_226[] = "(1x)";
  149.     static char fmt_231[] = "(\0020\002,42x,\002offset.......\002,1pd11.2,/,\
  150. 43x,\002amplitude....\002,d11.2,/,43x,\002carrier freq.\002,d11.2,/,43x,\002\
  151. modn index...\002,d11.2,/,43x,\002signal freq..\002,d11.2,/)";
  152.     static char fmt_251[] = "(//\0020**** transmission lines\002/\0020     n\
  153. ame             nodes            z0         td\002//)";
  154.     static char fmt_256[] = "(6x,a8,4i5,1p2d11.2)";
  155.     static char fmt_261[] = "(//\0020**** diodes\002/\0020     name        +\
  156.     -  model       area\002//)";
  157.     static char fmt_271[] = "(6x,a8,2i5,2x,a8,f8.3,2x,a8)";
  158.     static char fmt_291[] = "(//\0020**** bipolar junction transistors\002\
  159. /\0020     name        c    b    e    s  model       area\002//)";
  160.     static char fmt_301[] = "(6x,a8,4i5,2x,a8,f8.3,2x,a8)";
  161.     static char fmt_321[] = "(//\0020**** jfets\002/\0020     name        d \
  162.    g    s  model       area\002//)";
  163.     static char fmt_331[] = "(6x,a8,3i5,2x,a8,f8.3,2x,a8)";
  164.     static char fmt_351[] = "(//\0020**** mosfets\002,/,\0020name\002,6x,\
  165. \002d   g   s   b  model\002,6x,\002w       ad       pd      rds\002/37x,\
  166. \002l       as       ps      rss\002,//)";
  167.     static char fmt_361[] = "(1x,a8,4i4,1x,a8,1p4d8.1,/34x,1p4d8.1,1x,a8)";
  168.     static char fmt_401[] = "(//\0020**** subcircuit calls\002/\0020     nam\
  169. e     subcircuit   external nodes\002//)";
  170.     static char fmt_416[] = "(6x,a8,2x,a8,4x,20i5)";
  171.     static char fmt_418[] = "(28x,20i5)";
  172.  
  173.     /* System generated locals */
  174.     integer i_1, i_2;
  175.  
  176.     /* Builtin functions */
  177.     integer s_wsfe(), e_wsfe(), do_fio();
  178.  
  179.     /* Local variables */
  180.     static doublereal anam;
  181.     static integer itab[25], ltab, node, locm, locn, locp, locv, locs, node1, 
  182.         node2, node3, node4, j;
  183.     extern /* Subroutine */ int title_();
  184.     static integer ispot, itype, jstop, nnodx, locsv, id;
  185. #define nodplc ((integer *)&blank_1)
  186. #define cvalue ((complex *)&blank_1)
  187.     static integer ititle;
  188.     extern /* Subroutine */ int sizmem_();
  189.     static integer nparam, nl1, nl2, jstart;
  190.     static doublereal aic;
  191.     static integer ndprln, loc;
  192.  
  193.     /* Fortran I/O blocks */
  194.     static cilist io__9 = { 0, 0, 0, fmt_21, 0 };
  195.     static cilist io__13 = { 0, 0, 0, fmt_31, 0 };
  196.     static cilist io__15 = { 0, 0, 0, fmt_51, 0 };
  197.     static cilist io__16 = { 0, 0, 0, fmt_31, 0 };
  198.     static cilist io__20 = { 0, 0, 0, fmt_63, 0 };
  199.     static cilist io__21 = { 0, 0, 0, fmt_81, 0 };
  200.     static cilist io__24 = { 0, 0, 0, fmt_91, 0 };
  201.     static cilist io__25 = { 0, 0, 0, fmt_101, 0 };
  202.     static cilist io__26 = { 0, 0, 0, fmt_111, 0 };
  203.     static cilist io__27 = { 0, 0, 0, fmt_121, 0 };
  204.     static cilist io__28 = { 0, 0, 0, fmt_111, 0 };
  205.     static cilist io__29 = { 0, 0, 0, fmt_141, 0 };
  206.     static cilist io__30 = { 0, 0, 0, fmt_111, 0 };
  207.     static cilist io__31 = { 0, 0, 0, fmt_161, 0 };
  208.     static cilist io__32 = { 0, 0, 0, fmt_111, 0 };
  209.     static cilist io__33 = { 0, 0, 0, fmt_171, 0 };
  210.     static cilist io__37 = { 0, 0, 0, fmt_181, 0 };
  211.     static cilist io__40 = { 0, 0, 0, fmt_191, 0 };
  212.     static cilist io__42 = { 0, 0, 0, fmt_201, 0 };
  213.     static cilist io__43 = { 0, 0, 0, fmt_211, 0 };
  214.     static cilist io__44 = { 0, 0, 0, fmt_221, 0 };
  215.     static cilist io__45 = { 0, 0, 0, fmt_226, 0 };
  216.     static cilist io__46 = { 0, 0, 0, fmt_231, 0 };
  217.     static cilist io__47 = { 0, 0, 0, fmt_251, 0 };
  218.     static cilist io__50 = { 0, 0, 0, fmt_256, 0 };
  219.     static cilist io__51 = { 0, 0, 0, fmt_261, 0 };
  220.     static cilist io__54 = { 0, 0, 0, fmt_271, 0 };
  221.     static cilist io__55 = { 0, 0, 0, fmt_291, 0 };
  222.     static cilist io__56 = { 0, 0, 0, fmt_301, 0 };
  223.     static cilist io__57 = { 0, 0, 0, fmt_321, 0 };
  224.     static cilist io__58 = { 0, 0, 0, fmt_331, 0 };
  225.     static cilist io__59 = { 0, 0, 0, fmt_351, 0 };
  226.     static cilist io__60 = { 0, 0, 0, fmt_361, 0 };
  227.     static cilist io__61 = { 0, 0, 0, fmt_401, 0 };
  228.     static cilist io__69 = { 0, 0, 0, fmt_416, 0 };
  229.     static cilist io__70 = { 0, 0, 0, fmt_418, 0 };
  230.     static cilist io__71 = { 0, 0, 0, fmt_226, 0 };
  231.  
  232.  
  233. /*<       implicit double precision (a-h,o-z) >*/
  234.  
  235. /*     this routine prints a circuit element summary. */
  236.  
  237. /* spice version 2g.6  sccsid=tabinf 3/15/83 */
  238. /*<       common /tabinf/ ielmnt,isbckt,nsbckt,iunsat,nunsat,itemps,numtem, >*/
  239. /*<      1   isens,nsens,ifour,nfour,ifield,icode,idelim,icolum,insize, >*/
  240. /*<      2   junode,lsbkpt,numbkp,iorder,jmnode,iur,iuc,ilc,ilr,numoff,isr, >*/
  241. /*<      3   nmoffc,iseq,iseq1,neqn,nodevs,ndiag,iswap,iequa,macins,lvnim1, >*/
  242. /*<      4   lx0,lvn,lynl,lyu,lyl,lx1,lx2,lx3,lx4,lx5,lx6,lx7,ld0,ld1,ltd, >*/
  243. /*<      5   imynl,imvn,lcvn,nsnod,nsmat,nsval,icnod,icmat,icval, >*/
  244. /*<      6   loutpt,lpol,lzer,irswpf,irswpr,icswpf,icswpr,irpt,jcpt, >*/
  245. /*<      7   irowno,jcolno,nttbr,nttar,lvntmp >*/
  246. /* spice version 2g.6  sccsid=miscel 3/15/83 */
  247. /*<       common /miscel/ atime,aprog(3),adate,atitle(10),defl,defw,defad, >*/
  248. /*<      1  defas,rstats(50),iwidth,lwidth,nopage >*/
  249. /* spice version 2g.6  sccsid=cirdat 3/15/83 */
  250. /*<       common /cirdat/ locate(50),jelcnt(50),nunods,ncnods,numnod,nstop, >*/
  251. /*<      1   nut,nlt,nxtrm,ndist,ntlin,ibr,numvs,numalt,numcyc >*/
  252. /* spice version 2g.6  sccsid=flags 3/15/83 */
  253. /*<       common /flags/ iprnta,iprntl,iprntm,iprntn,iprnto,limtim,limpts, >*/
  254. /*<      1   lvlcod,lvltim,itl1,itl2,itl3,itl4,itl5,itl6,igoof,nogo,keof >*/
  255. /* spice version 2g.6  sccsid=tran 3/15/83 */
  256. /*<       common /tran/ tstep,tstop,tstart,delmax,tdmax,forfre,jtrflg >*/
  257. /* spice version 2g.6  sccsid=blank 3/15/83 */
  258. /*<       common /blank/ value(200000) >*/
  259. /* spice version 2g.6  sccsid=status 3/15/83 */
  260. /*<       common /status/ omega,time,delta,delold(7),ag(7),vt,xni,egfet, >*/
  261. /*<      1   xmu,sfactr,mode,modedc,icalc,initf,method,iord,maxord,noncon, >*/
  262. /*<      2   iterno,itemno,nosolv,modac,ipiv,ivmflg,ipostp,iscrch,iofile >*/
  263. /*<       integer nodplc(64) >*/
  264. /*<       complex cvalue(32) >*/
  265. /*<       equivalence (value(1),nodplc(1),cvalue(1)) >*/
  266.  
  267.  
  268. /*<       dimension itab(25),astyp(6) >*/
  269. /*<       dimension eltitl(4) >*/
  270. /*<       data eltitl / 8hcircuit , 8helement , 8hsummary , 8h         / >*/
  271. /*<       data astyp / 1h , 5hpulse, 3hsin, 3hexp, 3hpwl, 4hsffm / >*/
  272. /*<       data ablnk,aoff /1h ,3hoff/ >*/
  273.  
  274. /*  print listing of elements */
  275.  
  276. /*<       call title(0,lwidth,1,eltitl) >*/
  277.     title_(&c__0, &miscel_1.lwidth, &c__1, eltitl);
  278.  
  279. /*  print resistors */
  280.  
  281. /*<       if (jelcnt(1).eq.0) go to 50 >*/
  282.     if (cirdat_1.jelcnt[0] == 0) {
  283.     goto L50;
  284.     }
  285. /*<       ititle=0 >*/
  286.     ititle = 0;
  287. /*<    21 format(//'0**** resistors'/'0     name        nodes     value >*/
  288. /*<      1  tc1        tc2'//) >*/
  289. /* L21: */
  290. /*<       loc=locate(1) >*/
  291.     loc = cirdat_1.locate[0];
  292. /*<    30 if ((loc.eq.0).or.(nodplc(loc+8).ne.0)) go to 50 >*/
  293. L30:
  294.     if (loc == 0 || nodplc[loc + 7] != 0) {
  295.     goto L50;
  296.     }
  297. /*<       if (ititle.eq.0) write (iofile,21) >*/
  298.     if (ititle == 0) {
  299.     io__9.ciunit = status_1.iofile;
  300.     s_wsfe(&io__9);
  301.     e_wsfe();
  302.     }
  303. /*<       ititle=1 >*/
  304.     ititle = 1;
  305. /*<       locv=nodplc(loc+1) >*/
  306.     locv = nodplc[loc];
  307. /*<       node1=nodplc(loc+2) >*/
  308.     node1 = nodplc[loc + 1];
  309. /*<       node2=nodplc(loc+3) >*/
  310.     node2 = nodplc[loc + 2];
  311. /*<       write (iofile,31) value(locv),nodplc(junode+node1), >*/
  312. /*<      1   nodplc(junode+node2),value(locv+2),value(locv+3),value(locv+4) >*/
  313.     io__13.ciunit = status_1.iofile;
  314.     s_wsfe(&io__13);
  315.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
  316.         );
  317.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  318.         sizeof(integer));
  319.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  320.         sizeof(integer));
  321.     do_fio(&c__1, (char *)&blank_1.value[locv + 1], (ftnlen)sizeof(doublereal)
  322.         );
  323.     do_fio(&c__1, (char *)&blank_1.value[locv + 2], (ftnlen)sizeof(doublereal)
  324.         );
  325.     do_fio(&c__1, (char *)&blank_1.value[locv + 3], (ftnlen)sizeof(doublereal)
  326.         );
  327.     e_wsfe();
  328. /*<    31 format(6x,a8,2i5,1p3d11.2) >*/
  329. /*<    40 loc=nodplc(loc) >*/
  330. /* L40: */
  331.     loc = nodplc[loc - 1];
  332. /*<       go to 30 >*/
  333.     goto L30;
  334.  
  335. /*  print capacitors and inductors */
  336.  
  337. /*<    50 if ((jelcnt(2)+jelcnt(3)).eq.0) go to 80 >*/
  338. L50:
  339.     if (cirdat_1.jelcnt[1] + cirdat_1.jelcnt[2] == 0) {
  340.     goto L80;
  341.     }
  342. /*<       ititle=0 >*/
  343.     ititle = 0;
  344. /*<    51 format(//'0**** capacitors and inductors'/'0     name        nodes >*/
  345. /*<      1    in cond     value'//) >*/
  346. /* L51: */
  347. /*<       do 70 id=2,3 >*/
  348.     for (id = 2; id <= 3; ++id) {
  349. /*<       loc=locate(id) >*/
  350.     loc = cirdat_1.locate[id - 1];
  351. /*<    60 if (loc.eq.0) go to 70 >*/
  352. L60:
  353.     if (loc == 0) {
  354.         goto L70;
  355.     }
  356. /*<       if ((id.eq.2).and.(nodplc(loc+12).ne.0)) go to 70 >*/
  357.     if (id == 2 && nodplc[loc + 11] != 0) {
  358.         goto L70;
  359.     }
  360. /*<       if ((id.eq.3).and.(nodplc(loc+14).ne.0)) go to 70 >*/
  361.     if (id == 3 && nodplc[loc + 13] != 0) {
  362.         goto L70;
  363.     }
  364. /*<       if (ititle.eq.0) write (iofile,51) >*/
  365.     if (ititle == 0) {
  366.         io__15.ciunit = status_1.iofile;
  367.         s_wsfe(&io__15);
  368.         e_wsfe();
  369.     }
  370. /*<       ititle=1 >*/
  371.     ititle = 1;
  372. /*<       locv=nodplc(loc+1) >*/
  373.     locv = nodplc[loc];
  374. /*<       node1=nodplc(loc+2) >*/
  375.     node1 = nodplc[loc + 1];
  376. /*<       node2=nodplc(loc+3) >*/
  377.     node2 = nodplc[loc + 2];
  378. /*<       if (nodplc(loc+4).ne.1) go to 62 >*/
  379.     if (nodplc[loc + 3] != 1) {
  380.         goto L62;
  381.     }
  382. /*<       write (iofile,31) value(locv),nodplc(junode+node1), >*/
  383. /*<      1   nodplc(junode+node2),value(locv+2),value(locv+1) >*/
  384.     io__16.ciunit = status_1.iofile;
  385.     s_wsfe(&io__16);
  386.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(
  387.         doublereal));
  388.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  389.         sizeof(integer));
  390.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  391.         sizeof(integer));
  392.     do_fio(&c__1, (char *)&blank_1.value[locv + 1], (ftnlen)sizeof(
  393.         doublereal));
  394.     do_fio(&c__1, (char *)&blank_1.value[locv], (ftnlen)sizeof(doublereal)
  395.         );
  396.     e_wsfe();
  397. /*<       go to 65 >*/
  398.     goto L65;
  399. /*<    62 ltab=7 >*/
  400. L62:
  401.     ltab = 7;
  402. /*<       if (id.eq.3) ltab=10 >*/
  403.     if (id == 3) {
  404.         ltab = 10;
  405.     }
  406. /*<       call sizmem(nodplc(loc+ltab),nparam) >*/
  407.     sizmem_(&nodplc[loc + ltab - 1], &nparam);
  408. /*<       ispot=nodplc(loc+ltab)+1 >*/
  409.     ispot = nodplc[loc + ltab - 1] + 1;
  410. /*<       write (iofile,63) value(locv),nodplc(junode+node1), >*/
  411. /*<      1   nodplc(junode+node2),value(locv+2) >*/
  412.     io__20.ciunit = status_1.iofile;
  413.     s_wsfe(&io__20);
  414.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(
  415.         doublereal));
  416.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  417.         sizeof(integer));
  418.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  419.         sizeof(integer));
  420.     do_fio(&c__1, (char *)&blank_1.value[locv + 1], (ftnlen)sizeof(
  421.         doublereal));
  422.     e_wsfe();
  423. /*<    63 format(6x,a8,2i5,1pd11.2,'   variable') >*/
  424. /*<    65 loc=nodplc(loc) >*/
  425. L65:
  426.     loc = nodplc[loc - 1];
  427. /*<       go to 60 >*/
  428.     goto L60;
  429. /*<    70 continue >*/
  430. L70:
  431.     ;}
  432.  
  433. /*  print mutual inductors */
  434.  
  435. /*<    80 if (jelcnt(4).eq.0) go to 100 >*/
  436. L80:
  437.     if (cirdat_1.jelcnt[3] == 0) {
  438.     goto L100;
  439.     }
  440. /*<       ititle=0 >*/
  441.     ititle = 0;
  442. /*<    81 format(//'0**** mutual inductors'/'0     name        coupled induc >*/
  443. /*<      1tors   value'//) >*/
  444. /* L81: */
  445. /*<       loc=locate(4) >*/
  446.     loc = cirdat_1.locate[3];
  447. /*<    90 if ((loc.eq.0).or.(nodplc(loc+6).ne.0)) go to 110 >*/
  448. L90:
  449.     if (loc == 0 || nodplc[loc + 5] != 0) {
  450.     goto L110;
  451.     }
  452. /*<       if (ititle.eq.0) write (iofile,81) >*/
  453.     if (ititle == 0) {
  454.     io__21.ciunit = status_1.iofile;
  455.     s_wsfe(&io__21);
  456.     e_wsfe();
  457.     }
  458. /*<       ititle=1 >*/
  459.     ititle = 1;
  460. /*<       locv=nodplc(loc+1) >*/
  461.     locv = nodplc[loc];
  462. /*<       nl1=nodplc(loc+2) >*/
  463.     nl1 = nodplc[loc + 1];
  464. /*<       nl1=nodplc(nl1+1) >*/
  465.     nl1 = nodplc[nl1];
  466. /*<       nl2=nodplc(loc+3) >*/
  467.     nl2 = nodplc[loc + 2];
  468. /*<       nl2=nodplc(nl2+1) >*/
  469.     nl2 = nodplc[nl2];
  470. /*<       write (iofile,91) value(locv),value(nl1),value(nl2),value(locv+1) >*/
  471.     io__24.ciunit = status_1.iofile;
  472.     s_wsfe(&io__24);
  473.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
  474.         );
  475.     do_fio(&c__1, (char *)&blank_1.value[nl1 - 1], (ftnlen)sizeof(doublereal))
  476.         ;
  477.     do_fio(&c__1, (char *)&blank_1.value[nl2 - 1], (ftnlen)sizeof(doublereal))
  478.         ;
  479.     do_fio(&c__1, (char *)&blank_1.value[locv], (ftnlen)sizeof(doublereal));
  480.     e_wsfe();
  481. /*<    91 format(6x,a8,4x,a8,2x,a8,1pd10.2) >*/
  482. /*<    95 loc=nodplc(loc) >*/
  483. /* L95: */
  484.     loc = nodplc[loc - 1];
  485. /*<       go to 90 >*/
  486.     goto L90;
  487.  
  488. /*  print nonlinear voltage controlled sources */
  489.  
  490. /*<   100 if (jelcnt(5).eq.0) go to 120 >*/
  491. L100:
  492.     if (cirdat_1.jelcnt[4] == 0) {
  493.     goto L120;
  494.     }
  495. /*<       ititle=0 >*/
  496.     ititle = 0;
  497. /*<   101 format(//'0**** voltage-controlled current sources'/'0     name >*/
  498. /*<      1     +    -   dimension   function') >*/
  499. /* L101: */
  500. /*<       loc=locate(5) >*/
  501.     loc = cirdat_1.locate[4];
  502. /*<   110 if ((loc.eq.0).or.(nodplc(loc+13).ne.0)) go to 120 >*/
  503. L110:
  504.     if (loc == 0 || nodplc[loc + 12] != 0) {
  505.     goto L120;
  506.     }
  507. /*<       if (ititle.eq.0) write (iofile,101) >*/
  508.     if (ititle == 0) {
  509.     io__25.ciunit = status_1.iofile;
  510.     s_wsfe(&io__25);
  511.     e_wsfe();
  512.     }
  513. /*<       ititle=1 >*/
  514.     ititle = 1;
  515. /*<       locv=nodplc(loc+1) >*/
  516.     locv = nodplc[loc];
  517. /*<       node1=nodplc(loc+2) >*/
  518.     node1 = nodplc[loc + 1];
  519. /*<       node2=nodplc(loc+3) >*/
  520.     node2 = nodplc[loc + 2];
  521. /*<       write (iofile,111) value(locv),nodplc(junode+node1), >*/
  522. /*<      1   nodplc(junode+node2),nodplc(loc+4) >*/
  523.     io__26.ciunit = status_1.iofile;
  524.     s_wsfe(&io__26);
  525.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
  526.         );
  527.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  528.         sizeof(integer));
  529.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  530.         sizeof(integer));
  531.     do_fio(&c__1, (char *)&nodplc[loc + 3], (ftnlen)sizeof(integer));
  532.     e_wsfe();
  533. /*<   111 format(6x,a8,2i5,i8,9x,'poly') >*/
  534. /*<   115 loc=nodplc(loc) >*/
  535. /* L115: */
  536.     loc = nodplc[loc - 1];
  537. /*<       go to 110 >*/
  538.     goto L110;
  539.  
  540. /*  nonlinear voltage controlled voltage sources */
  541.  
  542. /*<   120 if (jelcnt(6).eq.0) go to 140 >*/
  543. L120:
  544.     if (cirdat_1.jelcnt[5] == 0) {
  545.     goto L140;
  546.     }
  547. /*<       ititle=0 >*/
  548.     ititle = 0;
  549. /*<   121 format(//'0**** voltage-controlled voltage sources'/'0     name >*/
  550. /*<      1     +    -   dimension   function') >*/
  551. /* L121: */
  552. /*<       loc=locate(6) >*/
  553.     loc = cirdat_1.locate[5];
  554. /*<   130 if ((loc.eq.0).or.(nodplc(loc+14).ne.0)) go to 140 >*/
  555. L130:
  556.     if (loc == 0 || nodplc[loc + 13] != 0) {
  557.     goto L140;
  558.     }
  559. /*<       if (ititle.eq.0) write (iofile,121) >*/
  560.     if (ititle == 0) {
  561.     io__27.ciunit = status_1.iofile;
  562.     s_wsfe(&io__27);
  563.     e_wsfe();
  564.     }
  565. /*<       ititle=1 >*/
  566.     ititle = 1;
  567. /*<       locv=nodplc(loc+1) >*/
  568.     locv = nodplc[loc];
  569. /*<       node1=nodplc(loc+2) >*/
  570.     node1 = nodplc[loc + 1];
  571. /*<       node2=nodplc(loc+3) >*/
  572.     node2 = nodplc[loc + 2];
  573. /*<       write (iofile,111) value(locv),nodplc(junode+node1), >*/
  574. /*<      1   nodplc(junode+node2),nodplc(loc+4) >*/
  575.     io__28.ciunit = status_1.iofile;
  576.     s_wsfe(&io__28);
  577.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
  578.         );
  579.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  580.         sizeof(integer));
  581.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  582.         sizeof(integer));
  583.     do_fio(&c__1, (char *)&nodplc[loc + 3], (ftnlen)sizeof(integer));
  584.     e_wsfe();
  585. /*<   135 loc=nodplc(loc) >*/
  586. /* L135: */
  587.     loc = nodplc[loc - 1];
  588. /*<       go to 130 >*/
  589.     goto L130;
  590.  
  591. /*  nonlinear current controlled current sources */
  592.  
  593. /*<   140 if (jelcnt(7).eq.0) go to 160 >*/
  594. L140:
  595.     if (cirdat_1.jelcnt[6] == 0) {
  596.     goto L160;
  597.     }
  598. /*<       ititle=0 >*/
  599.     ititle = 0;
  600. /*<   141 format(//'0**** current-controlled current sources'/'0     name >*/
  601. /*<      1     +    -   dimension   function') >*/
  602. /* L141: */
  603. /*<       loc=locate(7) >*/
  604.     loc = cirdat_1.locate[6];
  605. /*<   150 if ((loc.eq.0).or.(nodplc(loc+13).ne.0)) go to 160 >*/
  606. L150:
  607.     if (loc == 0 || nodplc[loc + 12] != 0) {
  608.     goto L160;
  609.     }
  610. /*<       if (ititle.eq.0) write (iofile,141) >*/
  611.     if (ititle == 0) {
  612.     io__29.ciunit = status_1.iofile;
  613.     s_wsfe(&io__29);
  614.     e_wsfe();
  615.     }
  616. /*<       ititle=1 >*/
  617.     ititle = 1;
  618. /*<       locv=nodplc(loc+1) >*/
  619.     locv = nodplc[loc];
  620. /*<       node1=nodplc(loc+2) >*/
  621.     node1 = nodplc[loc + 1];
  622. /*<       node2=nodplc(loc+3) >*/
  623.     node2 = nodplc[loc + 2];
  624. /*<       write (iofile,111) value(locv),nodplc(junode+node1), >*/
  625. /*<      1   nodplc(junode+node2),nodplc(loc+4) >*/
  626.     io__30.ciunit = status_1.iofile;
  627.     s_wsfe(&io__30);
  628.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
  629.         );
  630.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  631.         sizeof(integer));
  632.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  633.         sizeof(integer));
  634.     do_fio(&c__1, (char *)&nodplc[loc + 3], (ftnlen)sizeof(integer));
  635.     e_wsfe();
  636. /*<   155 loc=nodplc(loc) >*/
  637. /* L155: */
  638.     loc = nodplc[loc - 1];
  639. /*<       go to 150 >*/
  640.     goto L150;
  641.  
  642. /*  nonlinear current controlled voltage sources */
  643.  
  644. /*<   160 if (jelcnt(8).eq.0) go to 170 >*/
  645. L160:
  646.     if (cirdat_1.jelcnt[7] == 0) {
  647.     goto L170;
  648.     }
  649. /*<       ititle=0 >*/
  650.     ititle = 0;
  651. /*<   161 format(//'0**** current-controlled voltage sources'/'0     name >*/
  652. /*<      1     +    -   dimension   function') >*/
  653. /* L161: */
  654. /*<       loc=locate(8) >*/
  655.     loc = cirdat_1.locate[7];
  656. /*<   165 if ((loc.eq.0).or.(nodplc(loc+14).ne.0)) go to 170 >*/
  657. L165:
  658.     if (loc == 0 || nodplc[loc + 13] != 0) {
  659.     goto L170;
  660.     }
  661. /*<       if (ititle.eq.0) write (iofile,161) >*/
  662.     if (ititle == 0) {
  663.     io__31.ciunit = status_1.iofile;
  664.     s_wsfe(&io__31);
  665.     e_wsfe();
  666.     }
  667. /*<       ititle=1 >*/
  668.     ititle = 1;
  669. /*<       locv=nodplc(loc+1) >*/
  670.     locv = nodplc[loc];
  671. /*<       node1=nodplc(loc+2) >*/
  672.     node1 = nodplc[loc + 1];
  673. /*<       node2=nodplc(loc+3) >*/
  674.     node2 = nodplc[loc + 2];
  675. /*<       write (iofile,111) value(locv),nodplc(junode+node1), >*/
  676. /*<      1   nodplc(junode+node2),nodplc(loc+4) >*/
  677.     io__32.ciunit = status_1.iofile;
  678.     s_wsfe(&io__32);
  679.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
  680.         );
  681.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  682.         sizeof(integer));
  683.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  684.         sizeof(integer));
  685.     do_fio(&c__1, (char *)&nodplc[loc + 3], (ftnlen)sizeof(integer));
  686.     e_wsfe();
  687. /*<   167 loc=nodplc(loc) >*/
  688. /* L167: */
  689.     loc = nodplc[loc - 1];
  690. /*<       go to 165 >*/
  691.     goto L165;
  692.  
  693. /*  print independent sources */
  694.  
  695. /*<   170 if ((jelcnt(9)+jelcnt(10)).eq.0) go to 250 >*/
  696. L170:
  697.     if (cirdat_1.jelcnt[8] + cirdat_1.jelcnt[9] == 0) {
  698.     goto L250;
  699.     }
  700. /*<       ititle=0 >*/
  701.     ititle = 0;
  702. /*<   171 format(//'0**** independent sources'/'0     name        nodes   dc >*/
  703. /*<      1 value   ac value   ac phase   transient'//) >*/
  704. /* L171: */
  705. /*<       do 245 id=9,10 >*/
  706.     for (id = 9; id <= 10; ++id) {
  707. /*<       loc=locate(id) >*/
  708.     loc = cirdat_1.locate[id - 1];
  709. /*<   180 if (loc.eq.0) go to 245 >*/
  710. L180:
  711.     if (loc == 0) {
  712.         goto L245;
  713.     }
  714. /*<       if ((id.eq.9).and.(nodplc(loc+11).ne.0)) go to 245 >*/
  715.     if (id == 9 && nodplc[loc + 10] != 0) {
  716.         goto L245;
  717.     }
  718. /*<       if ((id.eq.10).and.(nodplc(loc+6).ne.0)) go to 245 >*/
  719.     if (id == 10 && nodplc[loc + 5] != 0) {
  720.         goto L245;
  721.     }
  722. /*<       if (ititle.eq.0) write (iofile,171) >*/
  723.     if (ititle == 0) {
  724.         io__33.ciunit = status_1.iofile;
  725.         s_wsfe(&io__33);
  726.         e_wsfe();
  727.     }
  728. /*<       ititle=1 >*/
  729.     ititle = 1;
  730. /*<       locv=nodplc(loc+1) >*/
  731.     locv = nodplc[loc];
  732. /*<       locp=nodplc(loc+5) >*/
  733.     locp = nodplc[loc + 4];
  734. /*<       node1=nodplc(loc+2) >*/
  735.     node1 = nodplc[loc + 1];
  736. /*<       node2=nodplc(loc+3) >*/
  737.     node2 = nodplc[loc + 2];
  738. /*<       itype=nodplc(loc+4)+1 >*/
  739.     itype = nodplc[loc + 3] + 1;
  740. /*<       anam=astyp(itype) >*/
  741.     anam = astyp[itype - 1];
  742. /*<       write (iofile,181) value(locv),nodplc(junode+node1), >*/
  743. /*<      1   nodplc(junode+node2),value(locv+1),value(locv+2), >*/
  744. /*<      2   value(locv+3),anam >*/
  745.     io__37.ciunit = status_1.iofile;
  746.     s_wsfe(&io__37);
  747.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(
  748.         doublereal));
  749.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  750.         sizeof(integer));
  751.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  752.         sizeof(integer));
  753.     do_fio(&c__1, (char *)&blank_1.value[locv], (ftnlen)sizeof(doublereal)
  754.         );
  755.     do_fio(&c__1, (char *)&blank_1.value[locv + 1], (ftnlen)sizeof(
  756.         doublereal));
  757.     do_fio(&c__1, (char *)&blank_1.value[locv + 2], (ftnlen)sizeof(
  758.         doublereal));
  759.     do_fio(&c__1, (char *)&anam, (ftnlen)sizeof(doublereal));
  760.     e_wsfe();
  761. /*<   181 format(6x,a8,2i5,1p3d11.2,2x,a8) >*/
  762. /*<       if (jtrflg.eq.0) go to 240 >*/
  763.     if (tran_1.jtrflg == 0) {
  764.         goto L240;
  765.     }
  766. /*<       jstart=locp+1 >*/
  767.     jstart = locp + 1;
  768. /*<       go to (240,190,200,210,220,230), itype >*/
  769.     switch (itype) {
  770.         case 1:  goto L240;
  771.         case 2:  goto L190;
  772.         case 3:  goto L200;
  773.         case 4:  goto L210;
  774.         case 5:  goto L220;
  775.         case 6:  goto L230;
  776.     }
  777. /*<   190 jstop=locp+7 >*/
  778. L190:
  779.     jstop = locp + 7;
  780. /*<       write (iofile,191) (value(j),j=jstart,jstop) >*/
  781.     io__40.ciunit = status_1.iofile;
  782.     s_wsfe(&io__40);
  783.     i_1 = jstop;
  784.     for (j = jstart; j <= i_1; ++j) {
  785.         do_fio(&c__1, (char *)&blank_1.value[j - 1], (ftnlen)sizeof(
  786.             doublereal));
  787.     }
  788.     e_wsfe();
  789. /*<   191 format(1h0,42x,'initial value',1pd11.2,/, >*/
  790. /*<      1           43x,'pulsed value.',  d11.2,/, >*/
  791. /*<      2           43x,'delay time...',  d11.2,/, >*/
  792. /*<      3           43x,'risetime.....',  d11.2,/, >*/
  793. /*<      4           43x,'falltime.....',  d11.2,/, >*/
  794. /*<      5           43x,'width........',  d11.2,/, >*/
  795. /*<      6           43x,'period.......',  d11.2,/) >*/
  796. /*<       go to 240 >*/
  797.     goto L240;
  798. /*<   200 jstop=locp+5 >*/
  799. L200:
  800.     jstop = locp + 5;
  801. /*<       write (iofile,201) (value(j),j=jstart,jstop) >*/
  802.     io__42.ciunit = status_1.iofile;
  803.     s_wsfe(&io__42);
  804.     i_1 = jstop;
  805.     for (j = jstart; j <= i_1; ++j) {
  806.         do_fio(&c__1, (char *)&blank_1.value[j - 1], (ftnlen)sizeof(
  807.             doublereal));
  808.     }
  809.     e_wsfe();
  810. /*<   201 format(1h0,42x,'offset.......',1pd11.2,/, >*/
  811. /*<      1           43x,'amplitude....',  d11.2,/, >*/
  812. /*<      2           43x,'frequency....',  d11.2,/, >*/
  813. /*<      3           43x,'delay........',  d11.2,/, >*/
  814. /*<      4           43x,'theta........',  d11.2,/) >*/
  815. /*<       go to 240 >*/
  816.     goto L240;
  817. /*<   210 jstop=locp+6 >*/
  818. L210:
  819.     jstop = locp + 6;
  820. /*<       write (iofile,211) (value(j),j=jstart,jstop) >*/
  821.     io__43.ciunit = status_1.iofile;
  822.     s_wsfe(&io__43);
  823.     i_1 = jstop;
  824.     for (j = jstart; j <= i_1; ++j) {
  825.         do_fio(&c__1, (char *)&blank_1.value[j - 1], (ftnlen)sizeof(
  826.             doublereal));
  827.     }
  828.     e_wsfe();
  829. /*<   211 format(1h0,42x,'initial value',1pd11.2,/, >*/
  830. /*<      1           43x,'pulsed value.',  d11.2,/, >*/
  831. /*<      2           43x,'rise delay...',  d11.2,/, >*/
  832. /*<      3           43x,'rise tau.....',  d11.2,/, >*/
  833. /*<      4           43x,'fall delay...',  d11.2,/, >*/
  834. /*<      5           43x,'fall tau.....',  d11.2,/) >*/
  835. /*<       go to 240 >*/
  836.     goto L240;
  837. /*<   220 call sizmem(nodplc(loc+5),jstop) >*/
  838. L220:
  839.     sizmem_(&nodplc[loc + 4], &jstop);
  840. /*<       jstop=locp+jstop >*/
  841.     jstop = locp + jstop;
  842. /*<       write (iofile,221) (value(j),j=jstart,jstop) >*/
  843.     io__44.ciunit = status_1.iofile;
  844.     s_wsfe(&io__44);
  845.     i_1 = jstop;
  846.     for (j = jstart; j <= i_1; ++j) {
  847.         do_fio(&c__1, (char *)&blank_1.value[j - 1], (ftnlen)sizeof(
  848.             doublereal));
  849.     }
  850.     e_wsfe();
  851. /*<   221 format(1h0,49x,'time       value'//,(46x,1p2d11.2)) >*/
  852. /*<       write (iofile,226) >*/
  853.     io__45.ciunit = status_1.iofile;
  854.     s_wsfe(&io__45);
  855.     e_wsfe();
  856. /*<   226 format(1x) >*/
  857. /*<       go to 240 >*/
  858.     goto L240;
  859. /*<   230 jstop=locp+5 >*/
  860. L230:
  861.     jstop = locp + 5;
  862. /*<       write (iofile,231) (value(j),j=jstart,jstop) >*/
  863.     io__46.ciunit = status_1.iofile;
  864.     s_wsfe(&io__46);
  865.     i_1 = jstop;
  866.     for (j = jstart; j <= i_1; ++j) {
  867.         do_fio(&c__1, (char *)&blank_1.value[j - 1], (ftnlen)sizeof(
  868.             doublereal));
  869.     }
  870.     e_wsfe();
  871. /*<   231 format(1h0,42x,'offset.......',1pd11.2,/, >*/
  872. /*<      1           43x,'amplitude....',  d11.2,/, >*/
  873. /*<      2           43x,'carrier freq.',  d11.2,/, >*/
  874. /*<      3           43x,'modn index...',  d11.2,/, >*/
  875. /*<      4           43x,'signal freq..',  d11.2,/) >*/
  876. /*<   240 loc=nodplc(loc) >*/
  877. L240:
  878.     loc = nodplc[loc - 1];
  879. /*<       go to 180 >*/
  880.     goto L180;
  881. /*<   245 continue >*/
  882. L245:
  883.     ;}
  884.  
  885. /*  print transmission lines */
  886.  
  887. /*<   250 if (jelcnt(17).eq.0) go to 260 >*/
  888. L250:
  889.     if (cirdat_1.jelcnt[16] == 0) {
  890.     goto L260;
  891.     }
  892. /*<       ititle=0 >*/
  893.     ititle = 0;
  894. /*<   251 format(//'0**** transmission lines'/'0     name             nodes >*/
  895. /*<      1           z0         td'//) >*/
  896. /* L251: */
  897. /*<       loc=locate(17) >*/
  898.     loc = cirdat_1.locate[16];
  899. /*<   253 if ((loc.eq.0).or.(nodplc(loc+33).ne.0)) go to 260 >*/
  900. L253:
  901.     if (loc == 0 || nodplc[loc + 32] != 0) {
  902.     goto L260;
  903.     }
  904. /*<       if (ititle.eq.0) write (iofile,251) >*/
  905.     if (ititle == 0) {
  906.     io__47.ciunit = status_1.iofile;
  907.     s_wsfe(&io__47);
  908.     e_wsfe();
  909.     }
  910. /*<       ititle=1 >*/
  911.     ititle = 1;
  912. /*<       locv=nodplc(loc+1) >*/
  913.     locv = nodplc[loc];
  914. /*<       node1=nodplc(loc+2) >*/
  915.     node1 = nodplc[loc + 1];
  916. /*<       node2=nodplc(loc+3) >*/
  917.     node2 = nodplc[loc + 2];
  918. /*<       node3=nodplc(loc+4) >*/
  919.     node3 = nodplc[loc + 3];
  920. /*<       node4=nodplc(loc+5) >*/
  921.     node4 = nodplc[loc + 4];
  922. /*<       write (iofile,256) value(locv),nodplc(junode+node1), >*/
  923. /*<      1   nodplc(junode+node2),nodplc(junode+node3), >*/
  924. /*<      2   nodplc(junode+node4),value(locv+1),value(locv+2) >*/
  925.     io__50.ciunit = status_1.iofile;
  926.     s_wsfe(&io__50);
  927.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
  928.         );
  929.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  930.         sizeof(integer));
  931.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  932.         sizeof(integer));
  933.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node3 - 1], (ftnlen)
  934.         sizeof(integer));
  935.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node4 - 1], (ftnlen)
  936.         sizeof(integer));
  937.     do_fio(&c__1, (char *)&blank_1.value[locv], (ftnlen)sizeof(doublereal));
  938.     do_fio(&c__1, (char *)&blank_1.value[locv + 1], (ftnlen)sizeof(doublereal)
  939.         );
  940.     e_wsfe();
  941. /*<   256 format(6x,a8,4i5,1p2d11.2) >*/
  942. /*<   258 loc=nodplc(loc) >*/
  943. /* L258: */
  944.     loc = nodplc[loc - 1];
  945. /*<       go to 253 >*/
  946.     goto L253;
  947.  
  948. /*  print diodes */
  949.  
  950. /*<   260 if (jelcnt(11).eq.0) go to 290 >*/
  951. L260:
  952.     if (cirdat_1.jelcnt[10] == 0) {
  953.     goto L290;
  954.     }
  955. /*<       ititle=0 >*/
  956.     ititle = 0;
  957. /*<   261 format(//'0**** diodes'/'0     name        +    -  model       are >*/
  958. /*<      1a'//) >*/
  959. /* L261: */
  960. /*<       loc=locate(11) >*/
  961.     loc = cirdat_1.locate[10];
  962. /*<   270 if ((loc.eq.0).or.(nodplc(loc+16).ne.0)) go to 290 >*/
  963. L270:
  964.     if (loc == 0 || nodplc[loc + 15] != 0) {
  965.     goto L290;
  966.     }
  967. /*<       if (ititle.eq.0) write (iofile,261) >*/
  968.     if (ititle == 0) {
  969.     io__51.ciunit = status_1.iofile;
  970.     s_wsfe(&io__51);
  971.     e_wsfe();
  972.     }
  973. /*<       ititle=1 >*/
  974.     ititle = 1;
  975. /*<       locv=nodplc(loc+1) >*/
  976.     locv = nodplc[loc];
  977. /*<       node1=nodplc(loc+2) >*/
  978.     node1 = nodplc[loc + 1];
  979. /*<       node2=nodplc(loc+3) >*/
  980.     node2 = nodplc[loc + 2];
  981. /*<       locm=nodplc(loc+5) >*/
  982.     locm = nodplc[loc + 4];
  983. /*<       locm=nodplc(locm+1) >*/
  984.     locm = nodplc[locm];
  985. /*<       aic=ablnk >*/
  986.     aic = ablnk;
  987. /*<       if (nodplc(loc+6).eq.1) aic=aoff >*/
  988.     if (nodplc[loc + 5] == 1) {
  989.     aic = aoff;
  990.     }
  991. /*<       write (iofile,271) value(locv),nodplc(junode+node1), >*/
  992. /*<      1   nodplc(junode+node2),value(locm),value(locv+1),aic >*/
  993.     io__54.ciunit = status_1.iofile;
  994.     s_wsfe(&io__54);
  995.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
  996.         );
  997.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  998.         sizeof(integer));
  999.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  1000.         sizeof(integer));
  1001.     do_fio(&c__1, (char *)&blank_1.value[locm - 1], (ftnlen)sizeof(doublereal)
  1002.         );
  1003.     do_fio(&c__1, (char *)&blank_1.value[locv], (ftnlen)sizeof(doublereal));
  1004.     do_fio(&c__1, (char *)&aic, (ftnlen)sizeof(doublereal));
  1005.     e_wsfe();
  1006. /*<   271 format(6x,a8,2i5,2x,a8,f8.3,2x,a8) >*/
  1007. /*<   280 loc=nodplc(loc) >*/
  1008. /* L280: */
  1009.     loc = nodplc[loc - 1];
  1010. /*<       go to 270 >*/
  1011.     goto L270;
  1012.  
  1013. /*  print transistors */
  1014.  
  1015. /*<   290 if (jelcnt(12).eq.0) go to 320 >*/
  1016. L290:
  1017.     if (cirdat_1.jelcnt[11] == 0) {
  1018.     goto L320;
  1019.     }
  1020. /*<       ititle=0 >*/
  1021.     ititle = 0;
  1022. /*<   291 format(//'0**** bipolar junction transistors'/'0     name        c >*/
  1023. /*<      1    b    e    s  model       area'//) >*/
  1024. /* L291: */
  1025. /*<       loc=locate(12) >*/
  1026.     loc = cirdat_1.locate[11];
  1027. /*<   300 if ((loc.eq.0).or.(nodplc(loc+36).ne.0)) go to 320 >*/
  1028. L300:
  1029.     if (loc == 0 || nodplc[loc + 35] != 0) {
  1030.     goto L320;
  1031.     }
  1032. /*<       if (ititle.eq.0) write (iofile,291) >*/
  1033.     if (ititle == 0) {
  1034.     io__55.ciunit = status_1.iofile;
  1035.     s_wsfe(&io__55);
  1036.     e_wsfe();
  1037.     }
  1038. /*<       ititle=1 >*/
  1039.     ititle = 1;
  1040. /*<       locv=nodplc(loc+1) >*/
  1041.     locv = nodplc[loc];
  1042. /*<       node1=nodplc(loc+2) >*/
  1043.     node1 = nodplc[loc + 1];
  1044. /*<       node2=nodplc(loc+3) >*/
  1045.     node2 = nodplc[loc + 2];
  1046. /*<       node3=nodplc(loc+4) >*/
  1047.     node3 = nodplc[loc + 3];
  1048. /*<       node4=nodplc(loc+5) >*/
  1049.     node4 = nodplc[loc + 4];
  1050. /*<       locm=nodplc(loc+8) >*/
  1051.     locm = nodplc[loc + 7];
  1052. /*<       locm=nodplc(locm+1) >*/
  1053.     locm = nodplc[locm];
  1054. /*<       aic=ablnk >*/
  1055.     aic = ablnk;
  1056. /*<       if (nodplc(loc+9).eq.1) aic=aoff >*/
  1057.     if (nodplc[loc + 8] == 1) {
  1058.     aic = aoff;
  1059.     }
  1060. /*<       write (iofile,301) value(locv),nodplc(junode+node1), >*/
  1061. /*<      1   nodplc(junode+node2),nodplc(junode+node3),nodplc(junode+node4), >*/
  1062. /*<      2   value(locm),value(locv+1),aic >*/
  1063.     io__56.ciunit = status_1.iofile;
  1064.     s_wsfe(&io__56);
  1065.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
  1066.         );
  1067.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  1068.         sizeof(integer));
  1069.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  1070.         sizeof(integer));
  1071.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node3 - 1], (ftnlen)
  1072.         sizeof(integer));
  1073.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node4 - 1], (ftnlen)
  1074.         sizeof(integer));
  1075.     do_fio(&c__1, (char *)&blank_1.value[locm - 1], (ftnlen)sizeof(doublereal)
  1076.         );
  1077.     do_fio(&c__1, (char *)&blank_1.value[locv], (ftnlen)sizeof(doublereal));
  1078.     do_fio(&c__1, (char *)&aic, (ftnlen)sizeof(doublereal));
  1079.     e_wsfe();
  1080. /*<   301 format(6x,a8,4i5,2x,a8,f8.3,2x,a8) >*/
  1081. /*<   310 loc=nodplc(loc) >*/
  1082. /* L310: */
  1083.     loc = nodplc[loc - 1];
  1084. /*<       go to 300 >*/
  1085.     goto L300;
  1086.  
  1087. /*  print jfets */
  1088.  
  1089. /*<   320 if (jelcnt(13).eq.0) go to 350 >*/
  1090. L320:
  1091.     if (cirdat_1.jelcnt[12] == 0) {
  1092.     goto L350;
  1093.     }
  1094. /*<       ititle=0 >*/
  1095.     ititle = 0;
  1096. /*<   321 format(//'0**** jfets'/'0     name        d    g    s  model >*/
  1097. /*<      1 area'//) >*/
  1098. /* L321: */
  1099. /*<       loc=locate(13) >*/
  1100.     loc = cirdat_1.locate[12];
  1101. /*<   330 if ((loc.eq.0).or.(nodplc(loc+25).ne.0)) go to 350 >*/
  1102. L330:
  1103.     if (loc == 0 || nodplc[loc + 24] != 0) {
  1104.     goto L350;
  1105.     }
  1106. /*<       if (ititle.eq.0) write (iofile,321) >*/
  1107.     if (ititle == 0) {
  1108.     io__57.ciunit = status_1.iofile;
  1109.     s_wsfe(&io__57);
  1110.     e_wsfe();
  1111.     }
  1112. /*<       ititle=1 >*/
  1113.     ititle = 1;
  1114. /*<       locv=nodplc(loc+1) >*/
  1115.     locv = nodplc[loc];
  1116. /*<       node1=nodplc(loc+2) >*/
  1117.     node1 = nodplc[loc + 1];
  1118. /*<       node2=nodplc(loc+3) >*/
  1119.     node2 = nodplc[loc + 2];
  1120. /*<       node3=nodplc(loc+4) >*/
  1121.     node3 = nodplc[loc + 3];
  1122. /*<       locm=nodplc(loc+7) >*/
  1123.     locm = nodplc[loc + 6];
  1124. /*<       locm=nodplc(locm+1) >*/
  1125.     locm = nodplc[locm];
  1126. /*<       aic=ablnk >*/
  1127.     aic = ablnk;
  1128. /*<       if (nodplc(loc+8).eq.1) aic=aoff >*/
  1129.     if (nodplc[loc + 7] == 1) {
  1130.     aic = aoff;
  1131.     }
  1132. /*<       write (iofile,331) value(locv),nodplc(junode+node1), >*/
  1133. /*<      1   nodplc(junode+node2),nodplc(junode+node3), >*/
  1134. /*<      2   value(locm),value(locv+1),aic >*/
  1135.     io__58.ciunit = status_1.iofile;
  1136.     s_wsfe(&io__58);
  1137.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
  1138.         );
  1139.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  1140.         sizeof(integer));
  1141.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  1142.         sizeof(integer));
  1143.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node3 - 1], (ftnlen)
  1144.         sizeof(integer));
  1145.     do_fio(&c__1, (char *)&blank_1.value[locm - 1], (ftnlen)sizeof(doublereal)
  1146.         );
  1147.     do_fio(&c__1, (char *)&blank_1.value[locv], (ftnlen)sizeof(doublereal));
  1148.     do_fio(&c__1, (char *)&aic, (ftnlen)sizeof(doublereal));
  1149.     e_wsfe();
  1150. /*<   331 format(6x,a8,3i5,2x,a8,f8.3,2x,a8) >*/
  1151. /*<   340 loc=nodplc(loc) >*/
  1152. /* L340: */
  1153.     loc = nodplc[loc - 1];
  1154. /*<       go to 330 >*/
  1155.     goto L330;
  1156.  
  1157. /*  print mosfets */
  1158.  
  1159. /*<   350 if (jelcnt(14).eq.0) go to 400 >*/
  1160. L350:
  1161.     if (cirdat_1.jelcnt[13] == 0) {
  1162.     goto L400;
  1163.     }
  1164. /*<       ititle=0 >*/
  1165.     ititle = 0;
  1166. /*<   351 format(//'0**** mosfets',/,'0name',6x,'d   g   s   b  model',6x, >*/
  1167. /*<      1      'w       ad       pd      rds'/ >*/
  1168. /*<      2  37x,'l       as       ps      rss',//) >*/
  1169. /* L351: */
  1170. /*<       loc=locate(14) >*/
  1171.     loc = cirdat_1.locate[13];
  1172. /*<   360 if ((loc.eq.0).or.(nodplc(loc+33).ne.0)) go to 400 >*/
  1173. L360:
  1174.     if (loc == 0 || nodplc[loc + 32] != 0) {
  1175.     goto L400;
  1176.     }
  1177. /*<       if (ititle.eq.0) write (iofile,351) >*/
  1178.     if (ititle == 0) {
  1179.     io__59.ciunit = status_1.iofile;
  1180.     s_wsfe(&io__59);
  1181.     e_wsfe();
  1182.     }
  1183. /*<       ititle=1 >*/
  1184.     ititle = 1;
  1185. /*<       locv=nodplc(loc+1) >*/
  1186.     locv = nodplc[loc];
  1187. /*<       node1=nodplc(loc+2) >*/
  1188.     node1 = nodplc[loc + 1];
  1189. /*<       node2=nodplc(loc+3) >*/
  1190.     node2 = nodplc[loc + 2];
  1191. /*<       node3=nodplc(loc+4) >*/
  1192.     node3 = nodplc[loc + 3];
  1193. /*<       node4=nodplc(loc+5) >*/
  1194.     node4 = nodplc[loc + 4];
  1195. /*<       locm=nodplc(loc+8) >*/
  1196.     locm = nodplc[loc + 7];
  1197. /*<       locm=nodplc(locm+1) >*/
  1198.     locm = nodplc[locm];
  1199. /*<       aic=ablnk >*/
  1200.     aic = ablnk;
  1201. /*<       if (nodplc(loc+9).eq.1) aic=aoff >*/
  1202.     if (nodplc[loc + 8] == 1) {
  1203.     aic = aoff;
  1204.     }
  1205. /*<       write (iofile,361) value(locv),nodplc(junode+node1), >*/
  1206. /*<      1   nodplc(junode+node2),nodplc(junode+node3), >*/
  1207. /*<      2   nodplc(junode+node4),value(locm),value(locv+2), >*/
  1208. /*<      3   value(locv+3),value(locv+11),value(locv+13), >*/
  1209. /*<      4   value(locv+1),value(locv+4),value(locv+12),value(locv+14),aic >*/
  1210.     io__60.ciunit = status_1.iofile;
  1211.     s_wsfe(&io__60);
  1212.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
  1213.         );
  1214.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node1 - 1], (ftnlen)
  1215.         sizeof(integer));
  1216.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node2 - 1], (ftnlen)
  1217.         sizeof(integer));
  1218.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node3 - 1], (ftnlen)
  1219.         sizeof(integer));
  1220.     do_fio(&c__1, (char *)&nodplc[tabinf_1.junode + node4 - 1], (ftnlen)
  1221.         sizeof(integer));
  1222.     do_fio(&c__1, (char *)&blank_1.value[locm - 1], (ftnlen)sizeof(doublereal)
  1223.         );
  1224.     do_fio(&c__1, (char *)&blank_1.value[locv + 1], (ftnlen)sizeof(doublereal)
  1225.         );
  1226.     do_fio(&c__1, (char *)&blank_1.value[locv + 2], (ftnlen)sizeof(doublereal)
  1227.         );
  1228.     do_fio(&c__1, (char *)&blank_1.value[locv + 10], (ftnlen)sizeof(
  1229.         doublereal));
  1230.     do_fio(&c__1, (char *)&blank_1.value[locv + 12], (ftnlen)sizeof(
  1231.         doublereal));
  1232.     do_fio(&c__1, (char *)&blank_1.value[locv], (ftnlen)sizeof(doublereal));
  1233.     do_fio(&c__1, (char *)&blank_1.value[locv + 3], (ftnlen)sizeof(doublereal)
  1234.         );
  1235.     do_fio(&c__1, (char *)&blank_1.value[locv + 11], (ftnlen)sizeof(
  1236.         doublereal));
  1237.     do_fio(&c__1, (char *)&blank_1.value[locv + 13], (ftnlen)sizeof(
  1238.         doublereal));
  1239.     do_fio(&c__1, (char *)&aic, (ftnlen)sizeof(doublereal));
  1240.     e_wsfe();
  1241. /*<   361 format(1x,a8,4i4,1x,a8,1p4d8.1,/34x,1p4d8.1,1x,a8) >*/
  1242. /*<   370 loc=nodplc(loc) >*/
  1243. /* L370: */
  1244.     loc = nodplc[loc - 1];
  1245. /*<       go to 360 >*/
  1246.     goto L360;
  1247.  
  1248. /*  subcircuit calls */
  1249.  
  1250. /*<   400 if (jelcnt(19).eq.0) go to 500 >*/
  1251. L400:
  1252.     if (cirdat_1.jelcnt[18] == 0) {
  1253.     goto L500;
  1254.     }
  1255. /*<       ititle=0 >*/
  1256.     ititle = 0;
  1257. /*<   401 format(//'0**** subcircuit calls'/'0     name     subcircuit   ext >*/
  1258. /*<      1ernal nodes'//) >*/
  1259. /* L401: */
  1260. /*<       loc=locate(19) >*/
  1261.     loc = cirdat_1.locate[18];
  1262. /*<   410 if (loc.eq.0) go to 500 >*/
  1263. L410:
  1264.     if (loc == 0) {
  1265.     goto L500;
  1266.     }
  1267. /*<       if (ititle.eq.0) write (iofile,401) >*/
  1268.     if (ititle == 0) {
  1269.     io__61.ciunit = status_1.iofile;
  1270.     s_wsfe(&io__61);
  1271.     e_wsfe();
  1272.     }
  1273. /*<       ititle=1 >*/
  1274.     ititle = 1;
  1275. /*<       locv=nodplc(loc+1) >*/
  1276.     locv = nodplc[loc];
  1277. /*<       locn=nodplc(loc+2) >*/
  1278.     locn = nodplc[loc + 1];
  1279. /*<       call sizmem(nodplc(loc+2),nnodx) >*/
  1280.     sizmem_(&nodplc[loc + 1], &nnodx);
  1281. /*<       locs=nodplc(loc+3) >*/
  1282.     locs = nodplc[loc + 2];
  1283. /*<       locsv=nodplc(locs+1) >*/
  1284.     locsv = nodplc[locs];
  1285. /*<       jstart=1 >*/
  1286.     jstart = 1;
  1287. /*<       ndprln=(lwidth-28)/5 >*/
  1288.     ndprln = (miscel_1.lwidth - 28) / 5;
  1289. /*<   412 jstop=min0(nnodx,jstart+ndprln-1) >*/
  1290. L412:
  1291. /* Computing MAX */
  1292.     i_1 = nnodx, i_2 = jstart + ndprln - 1;
  1293.     jstop = min(i_2,i_1);
  1294. /*<       do 414 j=jstart,jstop >*/
  1295.     i_1 = jstop;
  1296.     for (j = jstart; j <= i_1; ++j) {
  1297. /*<       node=nodplc(locn+j) >*/
  1298.     node = nodplc[locn + j - 1];
  1299. /*<       itab(j-jstart+1)=nodplc(junode+node) >*/
  1300.     itab[j - jstart] = nodplc[tabinf_1.junode + node - 1];
  1301. /*<   414 continue >*/
  1302. /* L414: */
  1303.     }
  1304. /*<       if (jstart.eq.1) >*/
  1305. /*<      1   write (iofile,416) value(locv),value(locsv),(itab(j),j=1,jstop) >*/
  1306.     if (jstart == 1) {
  1307.     io__69.ciunit = status_1.iofile;
  1308.     s_wsfe(&io__69);
  1309.     do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(
  1310.         doublereal));
  1311.     do_fio(&c__1, (char *)&blank_1.value[locsv - 1], (ftnlen)sizeof(
  1312.         doublereal));
  1313.     i_1 = jstop;
  1314.     for (j = 1; j <= i_1; ++j) {
  1315.         do_fio(&c__1, (char *)&itab[j - 1], (ftnlen)sizeof(integer));
  1316.     }
  1317.     e_wsfe();
  1318.     }
  1319. /*<   416 format(6x,a8,2x,a8,4x,20i5) >*/
  1320. /*<       if (jstart.ne.1) >*/
  1321. /*<      1   write (iofile,418) (itab(j-jstart+1),j=jstart,jstop) >*/
  1322.     if (jstart != 1) {
  1323.     io__70.ciunit = status_1.iofile;
  1324.     s_wsfe(&io__70);
  1325.     i_1 = jstop;
  1326.     for (j = jstart; j <= i_1; ++j) {
  1327.         do_fio(&c__1, (char *)&itab[j - jstart], (ftnlen)sizeof(integer));
  1328.  
  1329.     }
  1330.     e_wsfe();
  1331.     }
  1332. /*<   418 format(28x,20i5) >*/
  1333. /*<       jstart=jstop+1 >*/
  1334.     jstart = jstop + 1;
  1335. /*<       if (jstart.le.nnodx) go to 412 >*/
  1336.     if (jstart <= nnodx) {
  1337.     goto L412;
  1338.     }
  1339. /*<       if (nnodx.le.ndprln) go to 420 >*/
  1340.     if (nnodx <= ndprln) {
  1341.     goto L420;
  1342.     }
  1343. /*<       write (iofile,226) >*/
  1344.     io__71.ciunit = status_1.iofile;
  1345.     s_wsfe(&io__71);
  1346.     e_wsfe();
  1347. /*<   420 loc=nodplc(loc) >*/
  1348. L420:
  1349.     loc = nodplc[loc - 1];
  1350. /*<       go to 410 >*/
  1351.     goto L410;
  1352.  
  1353. /*  finished */
  1354.  
  1355. /*<   500 return >*/
  1356. L500:
  1357.     return 0;
  1358. /*<       end >*/
  1359. } /* elprnt_ */
  1360.  
  1361. #undef cvalue
  1362. #undef nodplc
  1363. #undef aoff
  1364. #undef ablnk
  1365. #undef astyp
  1366. #undef eltitl
  1367.  
  1368.  
  1369.